package com.ibeeking.found.file.rest.service;

import com.ibeeking.found.file.service.common.bo.SourceBO;
import com.ibeeking.found.file.service.common.param.SourceAddParam;
import com.ibeeking.found.file.service.common.param.SourceModifyBatch;
import com.ibeeking.found.file.service.common.param.SourceParam;
import com.ibeeking.found.file.service.common.query.SourcePageQuery;
import com.ibeeking.found.file.service.common.query.SourceQuery;
import com.ibeeking.found.file.service.common.vo.SourceVO;
import com.ibeeking.found.file.service.common.vo.SourceViewVo;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;



/**
 * ISourceService
 *
 * @Author ibeeking
 * @Date 2021-02-05 16:17
 */
public interface ISourceService {

    /***
     * 查询列表
     */
    List<SourceVO> list(SourceQuery sourceQuery);

    /***
     * 移动到其它分组
     */
    Page<SourceVO> pageList(SourcePageQuery sourcePageQuery);

    /***
     * 新增
     * @param sourceAddParam
     */
    Boolean add(SourceAddParam sourceAddParam);

    /***
     * 修改
     */
    Boolean modify(SourceParam sourceParam);

    /***
     * 通过id查询
     */
    SourceViewVo view(Long id);

    /***
     * 通过id删除
     */
    Boolean del(Long id);

    /***
     * 批量删除
     */
    Boolean delBatchIds(List<Long> ids);

    /***
     * 移动到其它分组
     */
    Boolean modifyBatchIds(SourceModifyBatch sourceModifyBatch);

    /**
     * 将要删除组的素材移动到未分组
     * @param parentId 素材组id
     */
    void modifyParentId(Long parentId);

    /**
     * 根据 素材id和素材类型获取素材数量
     * @param sourceBO
     */
    Integer listCountByParentIdAndType(SourceBO sourceBO);
}